home *** CD-ROM | disk | FTP | other *** search
/ Atari Forever 4 / Atari Forever 4.zip / Atari Forever 4.iso / PD_THEMA / HARDDISK / HD_TEST / HDBENCH.LST < prev    next >
File List  |  1998-03-14  |  4KB  |  183 lines

  1. ' Benchmark III für Festplatten
  2. ' ©1989 ST-Computer & Claus Brod
  3. '
  4. @Rdprog
  5. Do
  6.   Cls
  7.   @Center(3,"Standard-Benchmarks der ST-Computer")
  8.   @Center(4,"für Massenspeicher - Teil III")
  9.   @Center(5,"Written 1988 by Claus Brod")
  10.   Alert 1," Welches Schweinderl | hätten's denn gern? | |",1,"Exit|Sektor|File",Erg%
  11.   Exit If Erg%=1
  12.   Print
  13.   Print
  14.   On Erg%-1 Gosub Sectortest,Filetest
  15.   @Taste
  16. Loop
  17. End
  18. '
  19. Procedure Center(Zeile,A$)
  20.   Print At((80-Len(A$))/2,Zeile);A$
  21. Return
  22. '
  23. Procedure Sectortest
  24.   Print "SEKTORTEST"
  25.   Print
  26.   Repeat
  27.     Input "Laufwerksbezeichnung";A$
  28.     A$=Upper$(A$)
  29.   Until (A$>="A") And (A$<"Q") And (Bios(9,Asc(A$)-65)>=0)
  30.   Drive%=Asc(A$)-65
  31.   Print "1. 50 AUFEINANDERFOLGENDE SEKTOREN 100MAL EINLESEN"
  32.   @Media(Drive%)
  33.   Showm
  34.   Bpb=Bios(7,Drive%)
  35.   Bps%=Dpeek(Bpb)
  36.   Buf$=String$(50*Bps%,0)
  37.   Buf%=Varptr(Buf$)
  38.   Void Bios(4,0,L:Buf%,1,0,Drive%)
  39.   T1=Timer
  40.   For T=1 To 100
  41.     Showm
  42.     Fehler%=Bios(4,0,L:Buf%,50,0,Drive%)
  43.     If Fehler%
  44.       Print "Fehler ";Fehler%
  45.     Endif
  46.   Next T
  47.   T2=Timer
  48.   @Showtime(50*Bps%*100,T2-T1)
  49.   Print
  50.   Print "2. 100MAL JE 50 SEKTOREN EINZELN EINLESEN"
  51.   Showm
  52.   Void Bios(4,0,L:Buf%,1,0,Drive%)
  53.   T1=Timer
  54.   For I=1 To 100
  55.     For T=1 To 50
  56.       Showm
  57.       Fehler%=Bios(4,0,L:Buf%,1,T,Drive%)
  58.       If Fehler%
  59.         Print "Fehler ";Fehler%
  60.       Endif
  61.     Next T
  62.   Next I
  63.   T2=Timer
  64.   @Showtime(50*Bps%*100,T2-T1)
  65. Return
  66. '
  67. Procedure Showtime(Bytes%,Ticks%)
  68.   Print "Zeit:         ";Using "####.##",Ticks%/200;
  69.   Print " Sekunden"
  70.   If Bytes%
  71.     Print "Transferrate: ";Using "####.##",(Bytes%/1024)/(Ticks%/200);
  72.     Print " KB/s"
  73.   Endif
  74.   Print
  75. Return
  76. '
  77. Procedure Filetest
  78.   Print "FILETEST"
  79.   Print
  80.   Repeat
  81.     Input "Ziellaufwerk";A$
  82.     A$=Upper$(A$)
  83.   Until A$>="A" And A$<"Q" And Bios(9,Asc(A$)-65)>=0
  84.   Drive%=Asc(A$)-65
  85.   Alert 1," Ziellaufwerk | vorher initialisieren| (wird dabei| gelöscht!!!)? ",1,"NEIN!|OK",Erg%
  86.   If Erg%=2
  87.     For I=0 To 15
  88.       @Media(I)
  89.     Next I
  90.     Showm
  91.     Bpb=Bios(7,Drive%)
  92.     If Bpb=0
  93.       Print "BIOS-Fehler!"
  94.     Else
  95.       B$=String$(Dpeek(Bpb),0)
  96.       For I=1 To Dpeek(Bpb+&HC)-1
  97.         Showm
  98.         Fehler%=Bios(4,1,L:Varptr(B$),1,I,Drive%)
  99.         If Fehler%
  100.           Print "BIOS-Fehler ";Fehler%
  101.         Endif
  102.       Next I
  103.     Endif
  104.   Endif
  105.   Print "1. 25 DATEIEN WERDEN ERZEUGT"
  106.   Print "   (10*500 Bytes, 5*1500 Bytes, 10*30000 Bytes)"
  107.   If Dfree(Drive%+1)>350*1024
  108.     B$=String$(30000,&H42)
  109.     T1=Timer
  110.     For T=1 To 25
  111.       Mkdir A$+":\ordner."+Str$(T)
  112.       Open "O",#1,A$+":\ordner."+Str$(T)+"\testfile."+Str$(T)
  113.       Print #1,Left$(B$,30000+(T<16)*28500+(T<11)*1000);
  114.       Close #1
  115.     Next T
  116.     T2=Timer
  117.     @Showtime(0,T2-T1)
  118.     '
  119.     Print "2. LESEN DER DATEIEN"
  120.     T1=Timer
  121.     For T=1 To 25
  122.       Open "I",#1,A$+":\ordner."+Str$(T)+"\testfile."+Str$(T)
  123.       B$=Input$(30000+(T<16)*28500+(T<11)*1000,#1)
  124.       Close #1
  125.     Next T
  126.     T2=Timer
  127.     @Showtime(5*500+5*1500+10*30000,T2-T1)
  128.     '
  129.     Print "3. DATEIEN WERDEN GELÖSCHT"
  130.     T1=Timer
  131.     For T=1 To 25
  132.       Kill A$+":\ordner."+Str$(T)+"\testfile."+Str$(T)
  133.       Rmdir A$+":\ordner."+Str$(T)
  134.     Next T
  135.     T2=Timer
  136.     @Showtime(0,T2-T1)
  137.     @Media(Drive%)
  138.   Else
  139.     Print "Zuwenig Platz! Brauche mindestens 350 KB."
  140.   Endif
  141. Return
  142. '
  143. Procedure Media(Drv%)
  144.   T=Varptr(Med$)
  145.   Void C:T(Drv%)
  146. Return
  147. '
  148. Procedure Rdprog
  149.   Med$=String$(400,0)
  150.   Read A$
  151.   T=1
  152.   While A$<>"***"
  153.     Mid$(Med$,T)=Chr$(Val("&h"+A$))
  154.     Inc T
  155.     Read A$
  156.   Wend
  157. Return
  158. '
  159. Procedure Taste
  160.   Local T
  161.   Repeat
  162.     A$=Inkey$
  163.     If Timer-T>90 And Timer-T<110
  164.       Print At(35,25);String$(13,32);
  165.     Endif
  166.     If Timer-T>200
  167.       Print At(35,25);"Taste drücken";
  168.       T=Timer
  169.     Endif
  170.   Until A$<>""
  171. Return
  172. '
  173. Data 30,2F,0,4,D0,3C,0,41,41,FA,0,84,10,80,41,FA
  174. Data 0,30,61,20,48,7A,0,80,3F,3C,0,1A,4E,41,5C,8F
  175. Data 3F,3C,0,0,48,7A,0,68,3F,3C,0,4E,4E,41,50,8F
  176. Data 41,FA,0,3C,2F,8,3F,3C,0,26,4E,4E,5C,8F,4E,75
  177. Data 41,FA,0,80,20,B8,4,72,21,78,4,7E,0,4,21,78
  178. Data 4,76,0,8,41,FA,0,2C,21,C8,4,72,41,FA,0,28
  179. Data 21,C8,4,7E,41,FA,0,24,21,C8,4,76,4E,75,21,FA
  180. Data 0,52,4,72,21,FA,0,50,4,7E,21,FA,0,4E,4,76
  181. Data 4E,75,70,0,4E,75,70,2,4E,75,70,F2,4E,75,58,3A
  182. Data 5C,2A,2E,2A,0,0,***
  183.